A computer network is a collection of interconnected computing devices that can exchange data and share resources. Example network devices include layer two devices (e.g., switches) that operate within the second layer (L2) of the Open Systems Interconnection (OSI) reference model, i.e., the data link layer, and layer three devices (e.g., routers) that operate within the third layer (L3) of the OSI reference model, i.e., the network layer. Network devices within computer networks often include a control unit that provides control plane functionality for the network device and forwarding components for routing or switching data units.
An Ethernet Virtual Private Network (EVPN) may be used to extend two or more remote layer two (L2) customer networks through an intermediate layer three (L3) network (usually referred to as a provider network), in a transparent manner, i.e., as if the intermediate L3 network does not exist. In particular, the EVPN transports L2 communications, such as Ethernet packets or “frames,” between customer networks via the intermediate network. In a typical configuration, provider edge (PE) network devices (e.g., routers and/or switches) coupled to the customer edge (CE) network devices of the customer networks define label switched paths (LSPs) (also referred to as pseudowires) within the provider network to carry encapsulated L2 communications as if these customer networks were directly attached to the same local area network (LAN). In some configurations, the PE network devices may also be connected by an IP infrastructure in which case IP/GRE (generic routing encapsulation) tunneling or other IP tunneling can be used between the network devices.
As the PE network devices in an EVPN forward Ethernet frames, the PE network devices learn L2 state information for the L2 customer networks. The L2 state information may include media access control (MAC) addressing information for the CE network devices and customer equipment within the customer network and the physical ports of the PE network device through which the customer devices are reachable. The PE network devices typically store the MAC addressing information in L2 learning tables associated with each of their physical interfaces. When switching an individual Ethernet frame having a given destination MAC address, a PE network device typically broadcasts the Ethernet frame to all of its physical ports unless the PE network device has previously learned the specific physical port through which to the destination MAC address is reachable. In this case, the PE network device forwards a single copy of the Ethernet frame out the associated physical port.
In a conventional L2 switching environment, various types of traffic are typically forwarded on all interfaces of an L2 device, such as a switch. For example, a network packet that is a broadcast packet, an unknown unicast packet or a multicast packet (generally referred to as “BUM” traffic) is typically forwarded on all interfaces of a switch. As one example, assume such a switch was not configured with Internet Group Management Protocol (IGMP) snooping, and it receives a multicast listener interest message (such as an IGMP Report) from a downstream device. When multicast data traffic arrives from a multicast source, the switch would forward the multicast traffic via all interfaces other than the interface from which the multicast traffic was received. This would be the case even if there were no interested listeners for the traffic on such interfaces. This is undesirable, because the multicast traffic would consume bandwidth on links coupled to such interfaces, without reaching any devices that were configured to receive the multicast traffic.
IGMP snooping allows a switch to determine which interfaces by which to send received multicast traffic. In particular, when an IGMP Report/Join is received, an IGMP-enabled switch detects that the packet is an IGMP Report (i.e., “snoops” the packet) and updates internal data indicating that corresponding multicast traffic has been requested by a device on a certain interface and, therefore, when received is to be forwarded via the interface from which the IGMP Report was received. Thus, when multicast traffic is received, an IGMP-enabled switch would only forward the traffic via the particular interface(s) that lead to devices that have requested the particular multicast traffic. Likewise, if the switch did not receive any IGMP Reports, but received multicast traffic, and the switch was configured to perform IGMP snooping, the switch would not forward the multicast traffic at all, but instead, simply drop the multicast traffic. Of course, the switch would continue to forward Broadcast or Unknown Unicast traffic to all downstream links.